/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package UtilidadesTenencias;

import bd_tenencias.Auto;
import bd_tenencias.Tenencia;
import bd_tenencias.TarjetaCirc;
import java.util.Date;
import javax.persistence.*;
import javax.swing.JButton;
import javax.swing.JOptionPane;

/**
 *
 * @author Earving
 */
public class Acciones_Tenencias
{
    private String unidadpe = "db_proyect_pruebasPUTenencias";
    private EntityManager em;
    private EntityTransaction et; //jifTenencias tn = new jifTenencias();
    //private Integer edad, gene, fem,masc,idp,idp2; private boolean bol = false;
    //private String  nombre,app,apm,estado,mun,conf,g;
    //private List<Integer> ids = new ArrayList<Integer>();

    public void insertarTenencia(Integer idAuto, Date fechaPago, double costo, double desc, boolean excento, double adeudo)
    {
        try
        {
            int resp = JOptionPane.showConfirmDialog(null, "¿Registrar Nueva Tenencia?","Aviso",
                JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,null);
        if (resp == JOptionPane.YES_NO_OPTION)
        {
        //transaccion
        EntityManagerFactory factory = Persistence.createEntityManagerFactory(unidadpe);
        em = factory.createEntityManager();
        et = em.getTransaction();
        et.begin();
        //instanciar objeto
        Tenencia tene = new Tenencia();
        Auto auto = em.find(bd_tenencias.Auto.class, idAuto);
        tene.setAuto(auto);
        tene.setFechaPago(fechaPago);
        tene.setCosto(costo);
        tene.setDescuento(desc);
        tene.setExento(excento);
        tene.setAdeudos(adeudo);
        //persisitimos el objeto
        em.persist(tene);
        //hacemos el commit respectivo
        et.commit();
        JOptionPane.showMessageDialog(null, "Se Registro Correctamente la Tenencia","Exito !!!",JOptionPane.INFORMATION_MESSAGE);
        //tn.refreshTablaCitas();
        }
        }
        catch(Exception ex)
        {
            JOptionPane.showMessageDialog(null, "Ocurrio un Error: "+ex.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);

        }
        finally
        {
            em.close();
        }
    }

    public void insertarTarjeta(Integer idTenencia, Date fech_ini, Date fecha_fin, JButton jt, JButton jt2, JButton jt3)
    {
        try
        {
            int resp = JOptionPane.showConfirmDialog(null, "¿Registrar la Tarjeta de Circulacion?","Aviso",
                JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,null);
        if (resp == JOptionPane.YES_NO_OPTION)
        {
        //transaccion
        EntityManagerFactory factory = Persistence.createEntityManagerFactory(unidadpe);
        em = factory.createEntityManager();
        et = em.getTransaction();
        et.begin();
        //instanciar objeto
        TarjetaCirc tar = new TarjetaCirc();
        Tenencia tene = em.find(bd_tenencias.Tenencia.class, idTenencia);
        tar.setVigenciaIni(fech_ini);
        tar.setVigenciaFin(fecha_fin);
        tar.setTenencia(tene);
        //persisitimos el objeto
        em.persist(tar);
        //hacemos el commit respectivo
        et.commit();
        JOptionPane.showMessageDialog(null, "Se Registro Correctamente la Tarjeta de Circulacion","Exito !!!",JOptionPane.INFORMATION_MESSAGE);
        //tn.refreshTablaCitas();
        jt.setEnabled(false);
        jt2.setEnabled(true);
        jt3.setEnabled(true);
        }
        }
        catch(Exception ex)
        {
            JOptionPane.showMessageDialog(null, "Ocurrio un Error: "+ex.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);

        }
        finally
        {
            //em.close();
        }
    }

    public void actualizarTarjeta(Integer idTarjeta, Date fech_ini, Date fecha_fin)
    {
        try
        {
            int resp = JOptionPane.showConfirmDialog(null, "¿Actualizar la Informacion de la Tarjeta de Circulacion?","Aviso",
                JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,null);
        if (resp == JOptionPane.YES_NO_OPTION)
        {
        //transaccion
        EntityManagerFactory factory = Persistence.createEntityManagerFactory(unidadpe);
        em = factory.createEntityManager();
        et = em.getTransaction();
        et.begin();
        //instanciar objeto
        TarjetaCirc tar = em.find(bd_tenencias.TarjetaCirc.class, idTarjeta);
        tar.setVigenciaIni(fech_ini);
        tar.setVigenciaFin(fecha_fin);
        //persisitimos el objeto
        em.persist(tar);
        //hacemos el commit respectivo
        et.commit();
        JOptionPane.showMessageDialog(null, "Se Actualizo Correctamente la Informacion","Exito !!!",JOptionPane.INFORMATION_MESSAGE);
        //tn.refreshTablaCitas();

        }
        }
        catch(Exception ex)
        {
            JOptionPane.showMessageDialog(null, "Ocurrio un Error: "+ex.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);

        }
        finally
        {
            em.close();
        }
    }

    public void eliminarTarjeta(Integer idTarjeta)
    {
        try
        {
            int resp = JOptionPane.showConfirmDialog(null, "¿Eliminar la Tarjeta de Circulacion?","Aviso",
                JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,null);
        if (resp == JOptionPane.YES_NO_OPTION)
        {
        //transaccion
        EntityManagerFactory factory = Persistence.createEntityManagerFactory(unidadpe);
        em = factory.createEntityManager();
        et = em.getTransaction();
        et.begin();
        //instanciar objeto
        TarjetaCirc tar = em.find(bd_tenencias.TarjetaCirc.class, idTarjeta);
        em.remove(tar);
        //hacemos el commit respectivo
        et.commit();
        JOptionPane.showMessageDialog(null, "Se Elimino Correctamente la Tarjeta de Circulacion","Exito !!!",JOptionPane.INFORMATION_MESSAGE);
        //tn.refreshTablaCitas();

        }
        }
        catch(Exception ex)
        {
            JOptionPane.showMessageDialog(null, "Ocurrio un Error: "+ex.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);

        }
        finally
        {
            em.close();
        }
    }
}

